﻿<?php

class Application_Model_Article extends Zend_Db_Table_Abstract {
	
		protected $_name = 'article';
		
		public function fetchAlldata()
		{
			$select = $this->select();
			$select ->setIntegrityCheck(false)
					->from(array('a' => 'article'))
				    ->joinUsing('categorie','CATEGORIE_ID')
				    ->joinUsing('a_comme_couleur','ARTICLE_ID')
					->group('a.ARTICLE_ID');
			return $this->fetchAll($select);
		}
		
		public function fetchPhotoAndIdByCategorie($categorieid)
		{
			$select = $this->select();
			$select ->setIntegrityCheck(false)
					->from(array('a' => 'article'),array('a.ARTICLE_ID','ac.ARTICLE_PHOTO'))
					->joinUsing('categorie','CATEGORIE_ID')
					->join(array('ac' => 'a_comme_couleur'),'a.ARTICLE_ID = ac.ARTICLE_ID')
					->where('a.CATEGORIE_ID = ?', $categorieid)
					->group('a.ARTICLE_ID');
			return $this->fetchAll($select);
		}
		
		public function findByCategorie($categorieid)
		{
			$select = $this->select();
			$select ->setIntegrityCheck(false)
					->from(array('a' => 'article'))
				    ->joinUsing('categorie','CATEGORIE_ID')
				    ->where('a.CATEGORIE_ID = ?', $categorieid);
			return $this->fetchAll($select);
		}
		
		public function fetchByArticleAndCouleur($idarticle, $idcouleur)
		{
			$select = $this->select();
			$select ->setIntegrityCheck(false)
			->from(array('a'=>'article'))
			->join(array('ac' => 'a_comme_couleur'),'a.ARTICLE_ID = ac.ARTICLE_ID')
			->join(array('c' => 'couleur'),'ac.COULEUR_ID = c.COULEUR_ID')
			->where('ac.ARTICLE_ID = ?', $idarticle)
			->where('ac.COULEUR_ID = ?', $idcouleur);
			return $this->fetchRow($select);
		}
		
		public function fetchByArticle($idarticle)
		{
			$select = $this->select();
			$select ->setIntegrityCheck(false)
			->from(array('a'=>'article'))
			->join(array('ac' => 'a_comme_couleur'),'a.ARTICLE_ID = ac.ARTICLE_ID')
			->where('a.ARTICLE_ID = ?', $idarticle)
			->group('a.ARTICLE_ID');
			return $this->fetchRow($select);
		}
		
		public function fetchByCouleur($idcouleur)
		{
			$select = $this->select();
			$select ->setIntegrityCheck(false)
			->from(array('a'=>'article'))
			->join(array('ac' => 'a_comme_couleur'),'a.ARTICLE_ID = ac.ARTICLE_ID')
			->join(array('c' => 'couleur'),'ac.COULEUR_ID = c.COULEUR_ID')
			->where('c.COULEUR_ID = ?', $idcouleur);
			return $this->fetchAll($select);
		}
		
		public function addArticle($params) {
		 $article = $this->createRow(array(
            'CATEGORIE_ID' => $params['categorie'],
            'ARTICLE_NOM' => $params['nom'],
			'ARTICLE_DESCRIPTION' => $params['description'],
			'ARTICLE_PRIX' => $params['prix'],
			'ARTICLE_STATUT' => 'OK'
		 	));
				
			$article->save();
			return $article->ARTICLE_ID;
		}
		
		 public function editArticle($idarticle,$params) {
		  $where = $this->getAdapter()->quoteInto('article_id = ?', $idarticle);
		  $data = array ( 
            'CATEGORIE_ID' => $params['categorie'],
            'ARTICLE_NOM' => $params['nom'],
			'ARTICLE_DESCRIPTION' => $params['description'],
			'ARTICLE_PRIX' => $params['prix']);
		  $this->update($data, $where);
		}
		
		public function deleteArticle($idarticle) {
		    $article = $this->find($idarticle);
		    $article = $article->current();
		    $article->delete();
		}
}
?>